from threading import Thread

class ThreadCPU(Thread):
    
    def __init__(self, aCPU, aSched):
        Thread.__init__(self)
        self.myCPU = aCPU
        self.myScheduler = aSched
        
    def run(self):
        while(True):
            if (self.myCPU.getFreedom() and (not self.myCPU.readyQueue.empty())): # para poder agarrar el proximo PCB, la cola tiene que tener algo, y por eso pregunto antes si tiene algo antes
                x = self.myScheduler.nextPCB() 
                # Si no entra al siguiente if, el pcb se muere por no tener mas instrucciones, ya que arriba lo saque pero no hise mas nada con el'''
                if (not x.isFinished()): 
                    self.myCPU.executePCB(x)